1. Field of the Invention
The present invention relates to a digital data processing device, and more particularly to a digital data processing device controlling input/output of data.
2. Prior Art of the Invention
Attention has been focused on IEEE 1394 serial bus interface standard advocated by IEEE (The Institute of Electrical and Electronics Engineers, Inc.) as an interface standard for transferring data at a high speed between home digital data processing devices and computers. As to features of the interface standard, there are cited: an aspect of enabling a high transfer speed of hundreds of M bits/sec to be realized, an aspect of supporting taking-out from/insertion into an active line and a high flexibility in connection form and others, and among them, the greatest feature is in an isochronous transfer. That is, an isochronous transfer is a synchronous data transfer and a transfer suitable for reproducing data, while receiving, that would have difficulty if being interrupted during the reproduction, such as a video and a speech (such data is hereinafter referred to a “isochronous stream”).
Description will be given of a technique (mainly the contents defined in IEC 61883-1) inputting-outputting an isochronous stream between a plurality of digital data controlling devices connected to a serial bus in conformity with the IEEE 1394 serial interface standard (hereinafter referred to as a “1394 bus”) below.
A case is considered, for example, that, as shown in FIG. 14, a plurality of digital data controlling devices, such as a digital TV 100, D-VHS 200, a digital video camera, a MD player, which latter two are not shown in the figure, and others, are currently connected to a 1394 bus.
A user at first depresses a recording button of a remote controller 101 for the digital TV 100 when the user wishes to record a program data (for example, audio data compressed by a method in conformity with MPEG) received by the digital TV 100 with the D-VHS 200. Then, the user successively inputs a broadcast channel for the program using a ten-key pad or the like of the remote controller 101. Then, the name of a digital data processing device currently connected to the 1394 bus is displayed on a screen of the remote controller 101 and here, the user selects a region in which the D-VHS 200 is displayed with a cursor key or the like.
The broadcast channel inputted to the remote controller 101 and the device name of the D-VHS 200 are allocated by an image recording application 102 installed on the digital TV 100 shown in FIG. 15 (hereinafter referred to as an “image recording application”). When having allocated the names of the digital TV 100 and the D-VHS 200, the image recording application 102 further allocates node IDs of the digital TV 100 and the D-VHS 200 with reference to a node ID table, not shown, on which the device name of a digital data processing device and the ID of the digital data processing device on the 1394 bus (hereinafter referred to a “node ID”) are related to each other.
The image recording application 102, when having allocated the node IDs, proceeds to a processing to establish a virtual connection (hereinafter simply referred to as a “connection”) between the output plug 103 of the digital TV 100 and the input plug 204 of the D-VHS 200.
A digital data processing device connected to the 1394 bus can be provided with a plurality of virtual output plugs and input plugs without depending on a structure of a terminal thereof. Each output plug and each input plug are controlled by output plug register (hereinafter referred to an “oPCR”) and an input plug control register (hereinafter referred to as an “iPCR”), respectively.
The “oPCR” described above has, as shown in FIG. 16A, a “broadcast connection counter” region A12 (hereinafter referred to as a “region A12”) indicating whether or not a broadcast connection is established to the output plug 103 controlled by the “oPCR,” and a “point-to-point connection counter” region 13 (hereinafter referred to as a “region A13”) indicating the number of point-to-point connections established to the output plug.
Furthermore, the “iPCR” has, as shown in FIG. 16B, a “broadcast connection counter” region A22 (hereinafter referred to as a “region A22”) and a “point-to-point connection counter” region A23 (hereinafter referred to as a “region A23”).
The image recording application 102 refers to the region A12 and region A13 of the “oPCR” to recognize output plugs 103 to each of which no connection has been currently established (neither a broadcast connection nor a point-to-point connection has been established). The image recording application 102 here selects a prescribed one of the recognized output plugs 103 to use it for establishment of a connection. Moreover, the image recording application 102 allocates an index number of the “oPCR” to control the output plug 103 selected here (FIG. 17, S1501).
Likewise, the image recording application 102 selects one input plug 204 used for establishment of the connection with reference to the regions A22 and regions A23 of “iPCRs” to allocate an index number of the “iPCR” controlling the selected input plug 204 (FIG. 17, S1502).
When having allocated the index numbers of the “oPCR” and the “iPCR,” the image recording application 102 proceeds to a processing to allocate a channel number for use in establishment of the connection.
The use/non-use of channels on the 1394 bus is stored in a CHANNELS13 AVAILABLE register (hereinafter referred to as a “CA register”), which is shown in FIG. 18. The CA register is formatted so that an unused channel number is written with “1” thereto and a used channel number is written with “0” thereto in order to indicate a correspondence by IRM (Isochronous Resource Manager) described later.
Then, the image recording application 102 reads the CA register in order to allocate a currently unused channel number to store a prescribed one channel number written with “1” thereto for correspondence. The image recording application 102, after storing the channel number, allocates a data transfer speed of the digital TV 100 stored therein and a data transfer speed of the D-VHS 200 stored therein. The image recording application 102 recognizes one of the data transfer speeds smaller than the other as a data transfer speed.
The image recording application 102 transfers the index numbers of the “oPCR” and the “iPCR,” the channel number, the data transfer speed and the node IDs of the digital TV 100 and D-VHS 200 to a connection control unit 105.
The connection control means 105, when having allocated the index numbers, the channel number and others, allocates a channel number and a band width, which constitutes resources of the connection, from the IRM in the following manner.
The connection control means 105 at first transmits an allocate request for the channel number transferred from the image record application 102, to the IRM. Note that the IRM is installed to prescribed one digital data processing device connected to the 1394 bus.
The IRM, when receiving the channel allocate request, updates a value of the CA register corresponding to the channel number, which is an object of the allocate request, to “0.” The IRM, when having updated the CA register, transmits an allocation notice of the channel number, which is an object of the allocate request, to the connection control means 105 (FIG. 17, S1503).
The connection control means 105, when receiving the allocation notice, calculates a bandwidth necessary for transferring program data according to a calculating formula defined in IEC 61883-1.
The connection control means 105, when having calculated the bandwidth, transfers an allocate request for the calculated bandwidth to the IRM.
The IRM writes a bandwidth unused for establishment of a connection in bw—remaining of the BANDWIDTH—AVAILABLE register (hereinafter referred to as a “BA register”). The IRM, when receiving the bandwidth allocate request, updates a current value of the BA register to a value less than the current value of the BA register by the bandwidth for which the allocate request has been issued. The IRM, when having updated the BA register, transmits an allocation notice indicating allocation of the bandwidth, which is an object of the allocate request, to the connection control means 105 (FIG. 17, S1504).
When, as described above, having allocated the channel number and the bandwidth (hereinafter appropriately referred to “resources”), the connection control means 105, as described below, updates the “oPCR” and the “iPCR” of the index numbers transferred from the image recording application 102 to establish a connection between an output plug 103 and an input plug 204.
The connection control means 105, when having allocated the resource, updates a value of the region A13 of the “oPCR” to “1,” a value of the “channel number” region A14 (hereinafter referred to as a “region A14”) to the channel number allocated from the IRM and furthermore, a value of a “overhead ID” region A16 to an overhead value of the bandwidth allocated from the IRM (FIG. 17, S1505).
In addition, the connection control means 105 writes the data transfer speed into a “data rate” region A15 of the “oPCR”.
The connection control means 105, when having completed updating of the “oPCR,” then proceeds to update processing of an “iPCR” corresponding to the index number of the “iPCR” transferred from the image recording application 102.
The connection control means 105 designates an index number of an “iPCR,” which is an object of updating, and transmits an update request updating a value of the region A23 to “1” and a value of a “channel number” region A24 (hereinafter referred to as a “region A24”) to the channel number allocated from the IRM to the D-VHS 200 (FIG. 17, S1506).
The D-VHS 200 updates a value of the region A23 to “1” and a value of the region 24 to the channel number allocated from the IRM. The D-VHS 200, when having updated the “iPCR,” transmits a response of updating completion to the connection control means 105 of the digital TV 100 (FIG. 17, S1507).
When the “oPCR” and the “iPCR” have been updated in such a manner, the output plug 103 and the input plug 204 are connected to each other and a connection between the output plug 103 and the input plug 204 is established with the bandwidth allocated from the IRM.
The connection control means 105, when receiving the response of updating completion, outputs the program data from the output plug 103 controlled by the “oPCR” to the input plug 204 controlled by the “iPCR” using the bandwidth allocated from the IRM (FIG. 17, S1508).
The D-VHS 200, when the program data has been inputted from the input plug 204, records the program data onto a digital video tape loaded in the D-VHS 200 (FIG. 17, S1509).
The connection control means 105, when a connection has been established, generates a recording table 1601, shown in FIG. 18, in which written are the index numbers of the “oPCR” and the “iPCR” transferred from the image recording application 102, the ID of a digital data processing device equipped with an “oPCR” (hereinafter referred to as an “output node ID”) and the ID of a device equipped with an “iPCR” (hereinafter referred to as an “input node ID”), and the recording table 1601 is stored into a storage unit 106 attaching a table number to the table.
When the recording is stopped, a user at first depresses a recording stop button of the remote controller 101 for the digital TV 100. Then, the name of the digital data processing device currently in recording is displayed on, for example, a screen of the remote controller 101 together with a broadcast channel in recording. The user selects the D-VHS 200 using a cursor key of the remote controller.
The image recording application 102, when the D-VHS 200 has been selected, allocates the node ID of the D-VHS 200 from the node ID table. Subsequent to this, the image recording application 102 further allocates a table number of the recording table 1601 in which the allocated node ID has been written as an input node ID to transfer the table number to the connection control unit 105.
The connection control unit 105, when having allocated the table number, further allocates the recording table 1601 attached with the table number from the storage unit 106. The connection control unit 105, when having allocated the recording table 1601, performs disconnection of a connection corresponding to the recording table 1601 in the following manner.
The connection control unit 105 reads the index number of the “iPCR” and the input node ID (here, the node ID of the D-VHS 200) from the allocated recording table 1601. The connection control unit 105, when having read the index number of the “iPCR,” transmits an update request updating a value of the region A23 of the “iPCR” of the index number to “0” to the D-VHS 200 (FIG. 21, S1901).
When the D-VHS 200 has updated a value of the region A23 of the “iPCR” according to the update request, the “iPCR” stops inputting of the program data from the input plug 204 (FIG. 21. S1902→S1903). Then, when having updated a value of the region A23, the D-VHS 200 transmits a response of updating completion to the connection control unit 105.
When receiving a response of updating completion, the connection control unit 105 reads the index number of the “oPCR” of the allocated recording table 1601. The connection control unit 105 updates a value of the region A13 of the “oPCR” of the read index number to “0” (FIG. 21, S1904).
The updating of the regions A23 and A13 to “0” as described above means disconnection between the out plug 103 and the input plug 204. When the region A13 has been updated to “0,” the “oPCR” stops an output of a program data from the output plug 103 (FIG. 21, S1905).
When completing updating of the “oPCR,” the connection control unit 105 performs then a release of a bandwidth having been used for establishment of a connection.
The connection control unit 105 reads a value of a “pay load” region A 17 of the “oPCR” into which the maximum packet size of an isochronous stream that can be outputted by the output plug 103 and a value of the “data rate” region A15 to calculate a bandwidth allocated from the IRM as described above. Then, the connection control unit 105 transmits the calculated bandwidth and a release request for the bandwidth to the IRM.
The IRM, when receiving the bandwidth and the release request, adds a value of the received bandwidth to a value of the BA register (FIG. 21, S1906). With such a procedure, the bandwidth having been used for establishment of a connection is released. When updating a value of the BA register, the IRM transmits a response of release completion of the bandwidth to the connection control unit 105.
The connection control unit 105, when receiving a response of release completion of the bandwidth, reads a channel number having been written into the “channel number” region A14 of the “oPCR” to transmit the read channel number and a release request for the channel number to the IRM.
The IRM, when receiving the release request for a channel number, updates a region of the CA register corresponding to the received channel number to “1” (FIG. 21, S1907). With this updating performed, the channel number having been used for establishment of a connection is managed as non-use in the IRM to thereby release the channel number. The IRM, when having updated the CA register, transmits a response of release completion of the channel number to the connection control unit 105.
When the BA register and the CA register have been updated as described above, the bandwidth and the channel number having been used for a connection are released and the bandwidth or the channel number are hereafter managed in the IRM as an unused bandwidth or an unused channel.
It is imagined that the 1394 bus is used as a bus connecting a television set, a D-VHS and others in a home. For example, a case is considered where a D-VHS and television sets installed in rooms are connected by the 1394 bus and the television sets are individually placed in a state capable of viewing program data and others having been recorded in the D-VHS. When many of television sets and a D-VHS are connected to the 1394 bus, there occurs a chance to cause temporary concentration of establishment of a connection or disconnection between the D-VHS and each of the television sets.
If concentration of establishment of connections and disconnections occurs, a case arises where, for example, an “oPCR” and an IPCR” are in process for connection or disconnection of an input plug and output plug for use in another connection when the connection control unit 105, after completing a transfer of a program data, disconnects a connection. In such a case, since the “oPCR” and the “iPCR” are performing connection or disconnection of an input plug or output plug for used in another connection, the “oPCR” and the “iPCR” cannot deal with update requests for the regions A13 and A23 transmitted from the connection control unit 105.
Accordingly, the “oPCR” and the “iPCR” manage an input plug and output plug through which no program data actually flow as being used for establishment of a connection. Therefore, a new connection using the input plug and output plug can not be spanned on the 1394 bus.
A case arises where when the connection control unit 105 intends to disconnect a connection through which no program data flows, the IRM updates the CA register and the BA register for establishing of another connection or disconnection of a connection. In such a case, the IRM cannot perform a release request for a bandwidth and a channel transmitted from the connection control unit 105 since the IRM performs updating of the CA register and the BA register. Therefore, since neither of the CA register and the BA register is updated according to the release request, the CA register and the BA register manage a channel number and a bandwidth actually not used for establishment of a connection as being used therefor. For this reason, despite of availability of resources (a channel and a bandwidth) not actually used, program data cannot be transferred into the 1394 bus.
As for such a case, it is not sufficiently stipulated in IEC 61833-1 how an “iPCR”, an “oPCR,” a BA register and a CA register are updated.
In a conventional digital data processing device, when there was neither of an input plug and an output plug for establishment of a connection, or when the system was short of resources, a user inserted a plug for a digital data processing device into or pulled out it from the 1394 bus, or turned off a power supply of the digital data processing device to generate a bus reset and to thereby, disconnect an input plug and output plug or release resources. With theses methods, however, since a necessity arises for a user to detect a state where a connection has become disabled to establish, no new connection to a digital data processing device could be established as far as the user cannot detect an anomaly.